package cn.iocoder.yudao.module.system.service.areaserve;


import cn.iocoder.yudao.framework.common.pojo.PageResult;
import cn.iocoder.yudao.module.system.controller.admin.areaserve.vo.*;
import cn.iocoder.yudao.module.system.dal.dataobject.areaserve.*;

import java.util.List;

public interface AreaReserveService {

    PageResult<AreaResourcesDO> getAreaResourcesList(AreaResourcesPageReqVO pageReqVO);

    PageResult<AreaDepartementDO> getAreaDepartementList(AreaDepartementPageReqVO pageReqVO);

    PageResult<AreaWorkdayDO> getAreaWorkdayList(AreaWorkdayPageReqVO pageReqVO);

    PageResult<AreaBookingQuotaDO> getAreaBookingQuotaList(AreaBookingQuotaPageReqVO pageReqVO);

    PageResult<BookingSeatRecordDO> getBookingSeatRecordList(BookingSeatRecordPageReqVO pageReqVO);

    PageResult<MdmEmployeeDO> getMdmEmployeeList(MdmEmployeePageReqVO pageReqVO);

    PageResult<IsHolidayDO> getIsHolidayList(IsHolidayPageReqVO pageReqVO);

    PageResult<IsAdjustedWorkdayDO> getIsAdjustedWorkdayList(IsAdjustedWorkdayPageReqVO pageReqVO);

    void syncEmployeeData();

    void RefreshAreaBookingQuota(AreaBookingQuotaPageReqVO pageReqVO);

    BookingUserRecordRespVO BookSeat(BookingUserRecordReqVO pageReqVO);

    BookingUserRecordRespVO CancelSeat(BookingUserRecordReqVO pageReqVO);

    List<BookedSeatRecordRespVO> getSeatListByUser(BookingUserRecordReqVO pageReqVO);

    List<BookedSeatRecordRespVO> getSeatListByUserForAdmin(BookingUserRecordReqVO pageReqVO);

    List<BookingUserRecordRespVO> getBookedUserRecord(BookingUserRecordReqVO pageReqVO);

    MdmEmployeeDO getCurUser();
}
